﻿namespace Net
{
    // MessageFactory 用单独得cs文件， 生成方法的注册使用单独的cs文件记录。 使两部分独立， 记录文件使用代码生成
    public class MessageFactory
    {
        public static BaseMessage Create(short msgId)
        {
            if (!MessageFactoryRegistry.MessageCreators.TryGetValue(msgId, out var creator)) return null;
            return creator();
        }
        
        public static T Create<T>() where T : BaseMessage, new()
        {
            return new T();
        }
    }
}